{erl_opts, [debug_info, nowarn_export_all]}.

{deps, [telemetry]}.
{shell, [{apps, [ecron]}]}.

{profiles, [{test, [{deps, [{proper, "1.4.0"}]}]}]}.
{project_plugins, [
    rebar3_proper,
    covertool,
    rebar3_ex_doc,
    erlfmt
]}.

{cover_enabled, true}.
{cover_opts, [verbose]}.
{cover_print_enabled, true}.
{cover_export_enabled, true}.
{covertool, [{coverdata_files, ["eunit.coverdata", "proper.coverdata", "ct.coverdata"]}]}.

{xref_warnings, true}.
{xref_extra_paths, []}.
{xref_checks, [
    undefined_function_calls,
    undefined_functions,
    locals_not_used,
    deprecated_function_calls,
    deprecated_functions
]}.

{alias, [
    {check, [
        xref,
        ex_doc,
        {eunit, "-c"},
        {proper, "-c"},
        {cover, "-v --min_coverage=80"},
        %% FIXME: Dialyzer is only executed on the library by
        %% default, not its testsuite. To run Dialyzer on the
        %% test suites as well, the following command must be used:
        %% rebar as test dialyzer
        dialyzer
    ]}
]}.

{format, [
    {files, ["src/*.erl", "include/*.hrl", "rebar.config"]},
    %% The erlfmt formatter interface.
    {formatter, erlfmt_formatter},
    %% ...or no options at all.
    {options, #{print_width => 120, ignore_pragma => true}}
]}.

{hex, [
    {doc, #{provider => ex_doc}}
]}.
{edoc_opts, [{preprocess, true}]}.
{ex_doc, "docs.exs"}.
